#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N=1010;
int b[N][N];
pii xx[N];
pii yy[N];

bool cmp(pii a,pii b)
{
	if(a.first==b.first)
	{
		return a.second<b.second;
	}
	return a>b; 
}

bool cmp1(pii a,pii b)
{
	return a.second<b.second;
} 
int main()
{
	int m,n,k,l,d;
	cin>>n>>m>>k>>l>>d;
	for(int i=1;i<=1001;i++)
	{
		xx[i].second=i;
		yy[i].second=i;
	}
	while(d--)
	{
		int x1,y1,x2,y2;
		cin>>x1>>y1>>x2>>y2;
		if(y1==y2)
		{
			xx[min(x1,x2)].first++;
		}
		else if(x1==x2)
		{
			yy[min(y1,y2)].first++;
		}
	}
	n=max(n,m);
	sort(xx+1,xx+n+1,cmp);
	sort(yy+1,yy+n+1,cmp);
	sort(xx+1,xx+1+k,cmp1);
	sort(yy+1,yy+1+l,cmp1);
	
	for(int i=1;i<=k;i++)
	{
		if(i!=k)
		cout<<xx[i].second<<' ';
//		cout<<yy[i].first<<'  ';
        else cout<<xx[i].second;
	}
	cout<<endl;
	for(int i=1;i<=l;i++)
	{
		if(i!=l)cout<<yy[i].second<<' ';
		else cout<<yy[i].second;
//		cout<<xx[i].first<<'  ';
	}

	return 0;
}

